package cn.tedu;

import java.io.*;

/**
 * Date：2022年01月
 * Author：程Sir
 * Name： JavaSE-API
 * Content:

 */
public class HandleException {
    public static void main(String[] args) {
        // jdk1.7之前异常处理方式：
        FileReader reader = null;
        try {
            reader = new FileReader("a1.txt");
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("异常信息："+e.getMessage());
            System.out.println("异常原因："+e.getCause());//当前的异常是由于file找不到引起的，而非异常类引起的，所以返回null
        } finally {
            // 在关闭流连接的时候，也可能存在IO相关的异常，所以要紧必要的捕获
            try {
                if(reader!=null){
                    reader.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        // jdk1.7之后异常处理方式：
        // 不需要进行关闭流连接的操作 auto-close
        // 以下在try括号中创建的流都是不需要手动关闭的！因为做优化
        try(
                FileReader reader1  = new FileReader("a1.txt");
                FileWriter writer1 = new FileWriter("a2.txt");
                BufferedWriter bw = new BufferedWriter(writer1);
                BufferedReader br = new BufferedReader(reader1)

        ) {
            reader1.read();
            writer1.write(1);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}
